package com.example.gw_back_end.controller;

import com.example.gw_back_end.domain.PageParam;
import com.example.gw_back_end.domain.Result;
import com.example.gw_back_end.domain.entities.GameUserReview;
import com.example.gw_back_end.service.GameUserReviewService;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("game_user_review")
public class GameUserReviewController {

    private final GameUserReviewService gameUserReviewService;
    public GameUserReviewController(GameUserReviewService gameUserReviewService) {
        this.gameUserReviewService = gameUserReviewService;
    }

    // 获取指定游戏相关的评论列表
    @GetMapping("get_game_user_review_by_game_id")
    public Result getGameUserReviewByGameId(PageParam pageParam, Integer gameId) {
        return Result.success(gameUserReviewService.getGameUserReviewListByGameId(pageParam, gameId));
    }

    // 获取指定用户相关的评论列表
    @GetMapping("get_game_user_review_by_user_id")
    public Result getGameUserReviewByUserId(PageParam pageParam, Integer userId) {
        return Result.success(gameUserReviewService.getGameUserReviewListByGameId(pageParam, userId));
    }

    // 新增游戏评论
    @PostMapping("add_game_user_review")
    public Result addGameUserReview(@RequestBody GameUserReview gameUserReview) {
        if (gameUserReviewService.addGameUserReview(gameUserReview)){
            return Result.success();
        } else {
            return Result.error("新增游戏评论失败,请稍后重试！");
        }
    }

    // 删除游戏评论
    @DeleteMapping("delete_game_user_review")
    public Result deleteGameUserReview(Integer id) {
        if (gameUserReviewService.deleteGameUserReview(id)){
            return Result.success();
        } else {
            return Result.error("删除游戏评论失败,请稍后重试！");
        }
    }

    // 获取游戏评论
    @GetMapping("get_game_user_review")
    public Result getGameUserReview(Integer id) {
        return Result.success(gameUserReviewService.getGameUserReviewById(id));
    }

    // 更新游戏评论
    @PutMapping("update_game_user_review")
    public Result updateGameUserReview(GameUserReview gameUserReview) {
        if (gameUserReviewService.updateGameUserReview(gameUserReview)){
            return Result.success();
        } else {
            return Result.error("更新游戏评论失败,请稍后重试！");
        }
    }
}
